home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 March / CMCD0305.ISO / Software / Demo / Itcomm / auscomp-itcommander-win5.exe / {pf} / Firebird / doc / README_library_install.txt < prev    next >
Encoding:
Text File  |  2004-02-20  |  5.2 KB  |  118 lines

  1.  
  2. One of the design goals of Firebird 1.5 is to prepare the way for multiple 
  3. installs of the server. This will allow users to run different versions 
  4. side by side. Firebird 1.5 does support this, although it is not well 
  5. documented and very much requires intervention from a skilled user. Future
  6. versions of Firebird will make this process far less complicated. In the 
  7. meantime Firebird 1.5 needs to prepare the ground. This forces us to 
  8. confront the issue of library installation. At the same time, Microsoft 
  9. have taken their own steps to manage installation of different library 
  10. versions. Taken together these two separate issues mean a new approach to 
  11. library installation for Firebird 1.5 and beyond.
  12.  
  13. 1/ Installation of Microsoft system libraries. 
  14.  
  15. The problems associated with installing different versions of Microsoft 
  16. system libraries are so notorious that it has acquired the name
  17. 'DLL Hell'. 
  18.  
  19. From the release of Windows 2000 onwards Microsoft have made it almost 
  20. impossible to upgrade system dll's. To resolve this Microsoft now 
  21. recommend that each application installs local copies of any system 
  22. libraries that are required. 
  23.  
  24. Firebird 1.5 follows this practice for all Microsoft platforms from 
  25. Windows 2000 onwards and places the required libraries in the \bin directory 
  26. along with the server. When installed on older systems (Win 9x, NT) it follows 
  27. the standard practice and attempts to upgrade older versions of the system 
  28. libraries.
  29.  
  30.  
  31. 2/ Installation of fbclient.dll.
  32.  
  33. Firebird 1.5 and beyond no longer use gds32.dll as the client library. 
  34. It is now called fbclient.dll. Given the problems that Microsoft have 
  35. had with DLL hell it wouldn't make much sense if we continued to store the 
  36. Firebird client library in the <system> directory. And as we want to allow 
  37. installation of multiple engines simultaneously we would be creating our 
  38. own DLL hell if we continued the practice of using the <system> directory 
  39. for the client library. So, from Firebird 1.5 on, the client library resides 
  40. in the \bin directory along with all the other binaries.
  41.  
  42. A new registry key has been added and all Firebird compliant applications
  43. should now use this to locate the correct version of Firebird that they wish 
  44. to use. The new key is:
  45.  
  46.   HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances
  47.  
  48. Firebird will guarantee that one entry under this key always exists. It will 
  49. be known as
  50.  
  51.   "DefaultInstance"
  52.   
  53. and will store the path to the root directory of (yes, you've guessed it) 
  54. the default installation. Those that don't care about particular 
  55. installations can alway use the default instance to locate the fbclient.dll.
  56.  
  57. Future versions of Firebird will see other entries under Instances. 
  58. Applications will be able to enumerate the registry entries to determine
  59. which library instance the wish to load. 
  60.  
  61.  
  62. 3/ Supporting legacy applications and drivers.
  63.  
  64. Traditionally, applications that use InterBase or Firebird have expected to
  65. load the gds32.dll client library from the <system> directory. Firebird 1.5
  66. ships a tool named 'instclient.exe' that can install a clone of fbclient.dll
  67. to the Windows System directory. This clone gets patched on the fly so that
  68. its file version information starts in "6.3". This is done so because some
  69. old applications do extra checks on the GDS32.DLL file version. Based on a
  70. lot of experiments, it has been determined that 6.3 is a safe "compatible"
  71. version number to use, much better than "1.5".
  72.  
  73. During the installation process the installer checks to see if an 
  74. installation of InterBase or Firebird exists. If nothing is installed 
  75. it will write a patched gds32.dll into the <system> directory. If it detects
  76. that any possible version of Firebird or InterBase may already be installed
  77. it will not install the gds32.dll in the <system> directory. However
  78. you can always do so later by using the new 'instclient.exe' tool.
  79.  
  80. It is intended that future versions of Firebird will not attempt to 
  81. install gds32.dll into the <system> directory and ultimately it will
  82. be completely removed from the distribution.
  83.  
  84. This 'instclient.exe' tool can also install the FBCLIENT.DLL itself in the
  85. Windows system directory. This can be preferred by some tools or
  86. applications and we don't want to miss any use case.
  87.  
  88. instclient
  89. Usage:
  90.   instclient i[nstall] [ -f[orce] ] library
  91.              q[uery] library
  92.              r[emove] library
  93.  
  94.   where library is:  fbclient | gds32
  95.  
  96.   This utility should be located and run from the 'bin' directory
  97.   of your Firebird installation.
  98.   '-z' can be used with any other option, prints version
  99.  
  100. Purpose:
  101.   This utility manages deployment of the Firebird client library
  102.   into the Windows system directory. It caters for two installation
  103.   scenarios:
  104.  
  105.     Deployment of the native fbclient.dll.
  106.     Deployment of gds32.dll to support legacy applications.
  107.  
  108.   Version information and shared library counts are handled
  109.   automatically. You may provide the -f[orce] option to override
  110.   version checks.
  111.  
  112.   Please, note that if you -f[orce] the installation, you might have
  113.   to reboot the machine in order to finalize the copy and you might
  114.   break some other Firebird or InterBase(R) version on the system.
  115.  
  116.  
  117.  
  118.